package com.migo.charts;

import net.sf.json.JSONObject;

import java.util.ArrayList;
import java.util.List;

/**
 * @author powervision
 * @email jacques.liu@powervision.me
 * @date 2018/9/20 17:59
 */
public class chartFactory {

    /**
     * 创建柱状图/柱状堆积
     * @return
     * @param text 标题
     * @param fontSize 字体大小
     * @param xAxisName x轴名称
     * @param yAxisName y轴名称
     * @param yAxisUnit 单位 如"%"、"℃"之类
     * @param xData x轴值
     * @param dataList 数据
     */
    public static JSONObject createBar(String text,int fontSize,String xAxisName, String xData[],
        String yAxisName,String yAxisUnit,List<ChartsBarDataBean> dataList) {
        String trigger = "axis";
        String x = "center";
        String y = "top";
        boolean isShow = true;
        String formatter = "{value}" + yAxisUnit;
        List<ChartsBarSeriesBean> series = new ArrayList<ChartsBarSeriesBean>();
        //拿到图例
        String legend[] = new String[dataList.size()];
        if (!Toolkit.isEmpty(dataList) && dataList.size() > 0) {
            for (int i = 0; i < dataList.size(); i++) {
                legend[i] = dataList.get(i).getName();
                ChartsBarSeriesBean temp = new ChartsBarSeriesBean();
                temp.setName(dataList.get(i).getName());
                temp.setStack(dataList.get(i).getStack());
                temp.setData(dataList.get(i).getData());
                temp.setType("bar");
                series.add(temp);
            }
            ChartsBarDataBean bar = dataList.get(0);
            if (bar.getData().length == 1) {
                y = "bottom";
                trigger = "item";
            }
        } else {
            series = new ArrayList<ChartsBarSeriesBean>();
            ChartsBarSeriesBean seriesBean = new ChartsBarSeriesBean();
            seriesBean.setData(new String[]{});
            series.add(seriesBean);
        }
        BarOptionBean option = new BarOptionBean();
        //设置标题
//        ChartsTitleBean title=new ChartsTitleBean();
//        title.setText(text);
//        TextStyle textStyle=new TextStyle();
//        textStyle.setFontSize(fontSize);
//        option.setTitle(title);
//        //设置工具提示
//        BarToolTipBean tooltip=new BarToolTipBean();
//        tooltip.setTrigger(trigger);
//        option.setTooltip(tooltip);
//        //设置工具栏
//        ChartsToolBoxBean toolbox=new ChartsToolBoxBean();
//        String type[]={"bar","line"};
//        Feature feature=new Feature();
//        feature.setMark(new Mark(true));
//        feature.setDataView(new DataView(true));
//        feature.setDataZoom(new DataZoom(false));
//        feature.setMagicType(new MagicType(true,type));
//        feature.setRestore(new Restore(true));
//        feature.setSaveAsImage(new SaveAsImage(true));
//        toolbox.setFeature(feature);
//        toolbox.setShow(isShow);
//        option.setToolbox(toolbox);
//        //设置图例
//        LegendBean legendBean=new LegendBean(x,y,legend);
//        option.setLegend(legendBean);
//        //设置x轴
//        XAxisBean xAxis=new XAxisBean();
//        xAxis.setName(xAxisName);
//        if(xData==null){
//            xData=new String[1];
//            xData[0]="";
//        }
//        xAxis.setData(xData);
//        option.setxAxis(xAxis);
//        //设置y轴
//        YAxisBean yAxis=new YAxisBean();
//        AxisLabel axisLabel=new AxisLabel(formatter);
//        yAxis.setAxisLabel(axisLabel);
//        yAxis.setName(yAxisName);
//        option.setyAxis(yAxis);
//        //数据
//        option.setSeries(series);
//        JSONObject  jsonObject = JSONObject.fromObject(option);
//        return jsonObject;
//    }
        JSONObject jso = new JSONObject();
        return jso;
    }
}
